Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/1.2.43 #1038

Merged
merged 2 commits into from
Oct 8, 2024
Merged

Release/1.2.43 #1038

merged 2 commits into from
Oct 8, 2024

Conversation

ttypic
Copy link
Contributor

@ttypic ttypic commented Oct 7, 2024

Summary by CodeRabbit

Release Notes for Version 1.2.43

  • New Features

    • Enhanced proxy support, including authenticated proxies and WebSocket connections.
    • Added detailed instructions for using the Ably SDK under a proxy in the README.
  • Documentation

    • Updated CONTRIBUTING.md for improved clarity and usability, including expanded build instructions and testing guidelines.
    • Revised README.md to reflect version updates and new proxy configuration details.
  • Bug Fixes

    • Implemented retry rules for flaky Android push tests.
  • Chores

    • Updated Gradle wrapper and version numbers across documentation and configuration files.

Copy link

coderabbitai bot commented Oct 7, 2024

Walkthrough

This pull request includes updates to several documentation files and configuration settings for version 1.2.43 of the Ably Java SDK. Key changes include enhancements to proxy support, updated instructions in CONTRIBUTING.md for contributors, and version number increments in README.md and gradle.properties. Additionally, there are modifications to a test file to reflect the new version in expected values. No alterations were made to exported or public entity declarations.

Changes

File Path Change Summary
CHANGELOG.md Updated to include release notes for version 1.2.43, detailing enhancements and merged PRs.
CONTRIBUTING.md Restructured and updated for clarity, expanded build instructions, clarified network engine implementation, and detailed release process.
README.md Updated version numbers to 1.2.43, added proxy usage instructions, and provided example setup.
gradle.properties Updated VERSION_NAME from 1.2.42 to 1.2.43.
lib/src/test/java/io/ably/lib/test/realtime/RealtimeHttpHeaderTest.java Updated expected "agent" parameter value to reflect version 1.2.43 in the test method.

Possibly related PRs

  • Release/1.2.42 #1030: The changes in this PR involve updating the version number in multiple files, including the CHANGELOG.md, README.md, and gradle.properties, which are directly related to the version increment from 1.2.42 to 1.2.43 in the main PR.
  • chore: rearrange code before refactoring #1031: Although this PR focuses on code organization and refactoring, it includes changes to the HttpCore and WebSocketTransport classes, which are relevant to the overall functionality of the Ably library, potentially impacting the enhancements introduced in the main PR regarding proxy support and WebSocket connections.

Suggested reviewers

  • sacOO7

🐰 In the meadow, changes sprout,
Version 1.2.43, we shout!
With proxies and tests, all in line,
Our code now sparkles, oh so fine!
Contribute with ease, join the fun,
Together we code, together we run! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (9)
lib/src/test/java/io/ably/lib/test/realtime/RealtimeHttpHeaderTest.java (1)

91-91: LGTM! Consider extracting the version number to a constant.

The version number update from 1.2.42 to 1.2.43 in the expected agent string is correct and aligns with the new release version. This change ensures that the test remains accurate for the updated SDK version.

To improve maintainability, consider extracting the version number to a constant or retrieving it dynamically from the SDK's version information. This would reduce the need for manual updates in test files when the SDK version changes. For example:

private static final String SDK_VERSION = "1.2.43"; // Define this at the class level

// Then use it in the test
assertEquals("Verify correct lib version", requestParameters.get("agent"),
    Collections.singletonList("ably-java/" + SDK_VERSION + " jre/" + System.getProperty("java.version")));

This approach would centralize version management and reduce the risk of inconsistencies between the actual SDK version and the test expectations.

CONTRIBUTING.md (7)

Line range hint 1-38: LGTM! Clear and comprehensive instructions for development and building.

The development flow and building instructions are well-structured and provide clear guidance for contributors. The addition of specific commands for different operating systems is particularly helpful.

Consider adding a note about the minimum required Java version for building the project, if applicable.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 40-66: Great addition! Clear instructions for adding new network engines.

This new section provides valuable guidance for contributors who want to implement custom network engines. The explanation of current engines and the process for adding new ones is well-structured.

Consider enhancing this section with:

  1. A brief explanation of why someone might want to implement a new engine.
  2. More detailed steps or a code skeleton for implementing the required interfaces.
  3. Guidelines on how to test a new engine implementation.
🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 68-90: LGTM! Clear instructions for code style enforcement.

The Code Standard section provides clear guidance on using Checkstyle for Java and CodeNarc for Gradle scripts. The commands for running these tools are well-documented.

Consider adding links to the Checkstyle and CodeNarc configuration files used in the project, if they exist. This would allow contributors to review the specific rules being enforced.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 92-172: Excellent IDE support instructions! Clear and comprehensive.

The Supported Platforms section provides a good overview, and the expanded IDE Support section offers detailed guidance for setting up the project in IntelliJ IDEA, Eclipse, and Android Studio. The instructions for creating run/debug configurations are particularly helpful.

Consider adding a note about any known issues or limitations when using these IDEs with the project, if applicable. This could help contributors avoid common pitfalls.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 174-207: LGTM! Comprehensive test running instructions and valuable addition of interactive push tests.

The Running Tests section provides clear commands for different test suites and environments. The new Interactive push tests section is a great addition, offering guidance on end-to-end testing of push notifications.

Consider adding a brief explanation of what each test suite covers (e.g., what's included in RestSuite vs RealtimeSuite). This could help contributors understand which tests to run based on their changes.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 209-235: Great addition! Clear instructions for local building and usage.

These new sections provide valuable guidance for developers working on the library or using it in other projects. The instructions for building an AAR file and using it locally are clear and comprehensive.

Consider adding a troubleshooting section or common pitfalls to watch out for when using the locally built library in other projects. This could save time for developers encountering issues during integration.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


Line range hint 237-322: LGTM! Comprehensive release process documentation.

The Release Process section provides a detailed and well-structured guide for maintainers. It covers all necessary steps from creating a release branch to publishing on Maven Central.

Consider adding a checklist or summary of the release process at the beginning of this section. This could serve as a quick reference for maintainers and help ensure no steps are missed during the release.

🧰 Tools
🪛 Markdownlint

221-221: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)

README.md (1)

Line range hint 323-380: LGTM: New section on using Ably SDK under a proxy

The new section on using the Ably SDK under a proxy is a valuable addition to the documentation. It provides clear instructions for adding the required OkHttp dependency and configuring proxy settings. The Java example is comprehensive and covers both REST and Realtime clients.

Consider adding a note about the potential security implications of hardcoding proxy credentials in the example. Suggest using environment variables or a secure configuration management system for sensitive information in production environments.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between 4d120fc and 3d64fc0.

📒 Files selected for processing (5)
  • CHANGELOG.md (1 hunks)
  • CONTRIBUTING.md (1 hunks)
  • README.md (1 hunks)
  • gradle.properties (1 hunks)
  • lib/src/test/java/io/ably/lib/test/realtime/RealtimeHttpHeaderTest.java (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • gradle.properties
🧰 Additional context used
🔇 Additional comments (9)
README.md (3)

23-23: LGTM: Version update for Ably Java library

The version number has been correctly updated from 1.2.42 to 1.2.43. This change is consistent with the release information provided in the PR title.


29-29: LGTM: Version update for Ably Android library

The version number has been correctly updated from 1.2.42 to 1.2.43, maintaining parity with the Java library update. This change is consistent with the release information provided in the PR title.


Line range hint 1-380: Summary: Documentation updates for version 1.2.43

The changes in this file accurately reflect the release of version 1.2.43 for both the Ably Java and Android libraries. The addition of the section on using the SDK under a proxy enhances the documentation's completeness and usefulness. These updates improve the overall quality and relevance of the README.md file.

CHANGELOG.md (6)

3-15: LGTM: New version entry is well-formatted and informative.

The new version entry for 1.2.43 is correctly added at the top of the changelog. It includes the version number, link to the full changelog, and lists the implemented enhancements and merged pull requests. This follows the standard format and provides users with a clear overview of the changes in this release.


Line range hint 16-85: LGTM: Previous version entries are consistent and well-formatted.

The entries for versions 1.2.42 down to 1.2.39 maintain a consistent format, each including:

  • A link to the full changelog
  • Lists of implemented enhancements
  • Fixed bugs
  • Merged pull requests

This consistency helps users easily track changes across versions.


Line range hint 86-190: LGTM: Entries for versions 1.2.38 to 1.2.34 are well-documented.

These entries maintain the consistent format established in earlier versions. They provide clear information about changes, enhancements, and fixes for each version.

Notably, the entry for version 1.2.37 includes an important note about reverting changes from version 1.2.6 due to regressions. This transparency about reversions is excellent practice, helping users understand the evolution of the library.


Line range hint 191-569: LGTM: Comprehensive documentation of versions 1.2.33 to 1.0.0.

These entries maintain the established format and provide detailed information about changes, enhancements, and fixes for each version.

Particularly noteworthy is the entry for version 1.0.0, which marks a significant milestone as the first release of the 1.0 client library specification. This information helps users understand the major evolution points of the library.


Line range hint 570-1007: LGTM: Valuable historical record of early versions.

The changelog entries for versions 0.8.11 down to 0.8.0 maintain the consistent format established in later versions. This section provides a valuable historical record of the library's early development, allowing users and developers to trace the evolution of features and fixes from the project's inception.

Maintaining this historical information is excellent practice, as it can be useful for understanding long-term development patterns and decisions.


Line range hint 1-1009: LGTM: Exemplary CHANGELOG.md file.

This CHANGELOG.md file is a model of good practice in software version documentation:

  1. Comprehensive Coverage: It documents all versions from 0.8.0 to the latest 1.2.43, providing a complete history of the library's development.

  2. Consistent Formatting: Each entry follows a consistent format, making it easy for users to navigate and understand changes across versions.

  3. Clear Categorization: Changes are clearly categorized (e.g., "Implemented enhancements", "Fixed bugs", "Merged pull requests"), helping users quickly find relevant information.

  4. Detailed Linking: Each entry provides links to full changelogs and GitHub comparisons, allowing users to dive deeper into specific changes if needed.

  5. Transparency: The file includes a note about its automatic generation using github_changelog_generator, providing transparency about the changelog creation process.

This well-maintained changelog significantly enhances the usability and transparency of the library for its users and contributors.

Copy link
Collaborator

@sacOO7 sacOO7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@ttypic ttypic merged commit 5155516 into main Oct 8, 2024
12 checks passed
@ttypic ttypic deleted the release/1.2.43 branch October 8, 2024 09:03
@coderabbitai coderabbitai bot mentioned this pull request Oct 18, 2024
@coderabbitai coderabbitai bot mentioned this pull request Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants